//==============================================================================
//
// Title:       Screen.h
// Purpose:     A short description of the interface.
//
// Created on:  13/09/2010 at 16:56:28 by LEGRAND.
// Copyright:   GRPLEG. All Rights Reserved.
//
//==============================================================================

#ifndef __Screen_H__
#define __Screen_H__

#ifdef __cplusplus
    extern "C" {
#endif

//==============================================================================
// Include files
#include "typedefs.h"
// include micro abstraction layer


//==============================================================================
// Constants

//==============================================================================
// Types

//==============================================================================
// External variables

//==============================================================================
// Global functions
		
		/*
typedef enum
{
	SCREEN_STATE_IDLE=0,
}TScreenState;
*/
		

#define MSG_KEY_BOARD	(0x01U)
#define MSG_TIMER	(0x02U)
#define MSG_WAKE_UP	(0x03U)
#define MSG_PNL_FSM     (0x04U)
/*
enum
{
	KEY_UP=1U,
	KEY_DOWN,
        KEY_DOWN_LONG,
	KEY_RIGHT,
        KEY_RIGHT_LONG,
	KEY_LEFT,
        KEY_LEFT_LONG,
	KEY_OK_PRESS,
        KEY_OK_RELEASE,
};
*/

typedef struct sMessage
{
    uInt8  ID;
    uInt8  Param1;
    uInt8  Param2;
} TMessage ;

		
typedef struct sScreen	
{
    /* Screen callbacks */
    uInt8 (*ProcessMessage)( TMessage* pMsg ) ;
    uInt8 (*OnInitialize)( void ) ;


}TScreen;


uInt8 Screen_SetCurrent( const TScreen* pScreen );

uInt8 Screen_OnInitialize( void );

uInt8 Screen_ProcessMessage( TMessage* pMsg );




uInt8 Screen_SetCurrentScreen( void );

#ifdef __cplusplus
    }
#endif

#endif  /* ndef __Screen_H__ */
